// #include <stdio.h>
// #include <stdlib.h>
// #include <Windows.h>
// #include <stdbool.h>
// #include <time.h>
//
// typedef int ElemType;
// typedef struct Node {
//     ElemType data;
//     struct Node* next;
// }Node;
//
// typedef struct Queue {
//     Node* front;
//     Node* rear;
// }Queue;
//
// void InitQueue(Queue* Q) {
//     Q->front=Q->rear=NULL;
// }
//
// bool IsNull(Queue* Q) {
//     return Q->front==NULL;
// }
//
// //创建节点
// Node* createNode(int value) {
//     Node* newNode=(Node*)malloc(sizeof(Node));
//     if(newNode==NULL) {
//         exit(1);
//     }
//     newNode->data=value;
//     newNode->next=NULL;
//     return newNode;
// }
//
// //入队
// void Enquen(Queue* Q,int value) {
//     if(Q==NULL) {
//         return;
//     }
//     if(Q->rear==NULL) {
//         Q->front=Q->rear=createNode(value);
//     }else {
//         Node* newNode=createNode(value);
//         Q->rear->next=newNode;
//         Q->rear=Q->rear->next;
//     }
// }
//
// //出队
// Node* Dequen(Queue* Q) {
//     if(Q==NULL) {
//         exit(1);
//     }
//     if(IsNull(Q)) {
//         printf("队列为空，不能出队\n");
//         return NULL;
//     }
//     //队列剩最后一个节点时
//     if(Q->front==Q->rear) {
//         Node* tmp=Q->front;
//         Q->front=Q->rear=NULL;
//         return tmp;
//     }
//     Node* tmp=Q->front;
//     Q->front=Q->front->next;
//     return tmp;
// }
//
// void PrintQueue(Queue* Q) {
//     if(Q==NULL) {
//         return;
//     }
//     if(IsNull(Q)) {
//         printf("队列为空，不可打印\n");
//         return;
//     }
//     Node* p=Q->front;
//     printf("队列元素:");
//     while (p!=NULL) {
//         printf("%d ",p->data);
//         p=p->next;
//     }
//     printf("\n");
// }
//
// int main() {
//     SetConsoleOutputCP(CP_UTF8);
//     Queue Q;
//     InitQueue(&Q);
//     Enquen(&Q,1);
//     Enquen(&Q,2);
//     Enquen(&Q,3);
//     Enquen(&Q,4);
//     Enquen(&Q,5);
//     PrintQueue(&Q);
//     Node* result=Dequen(&Q);
//     printf("出队元素:");printf("%d\n",result->data);
//     PrintQueue(&Q);
//     return 0;
// }